package homework025;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws IOException {

        // 1. 创建一个网络监听（被动）
        ServerSocket serverSocket = new ServerSocket(8000);

        // 想办法获取Socket，用于网络连接（收发数据）
        Socket accept = serverSocket.accept();

        // 2. 通过网络接收客户端发过来的图片数据
        InputStream inputStream = accept.getInputStream();

        // 3. 创建一个本地流，用于将网络接收到的数据，存储到本地文件中（while）
        FileOutputStream fos = new FileOutputStream("C:\\space-class\\27\\javase_homework\\src\\day15\\upload\\download.jpg");
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        int i;
        while ((i = inputStream.read()) != -1) {
            // 读取图片的每一个字节
            // System.out.println(i);

            // 边接收数据，边写入文件
            bos.write(i);
        }

        // 4. 给客户端发送一个回信
        OutputStream outputStream = accept.getOutputStream();
        outputStream.write("gun".getBytes());

        // 强制刷新
        outputStream.flush();

        // 5. 关闭所有的流
        // 关闭本地流
        // 关闭了缓冲流，对应的输出流也会跟着关闭
        bos.close();
        // 关闭网络连接
        accept.close();
        // 关闭网络监听
        serverSocket.close();
    }
}
